using System;
using NUnit.Framework;
using dnAnalytics.Math;
using dnAnalytics.UnitTests;
namespace dnAnalytics.UnitTests.Math
{
	[TestFixture]
	[Category("Managed")]
	public class ComplexMath_MultiplyTest
	{
		[Test]
		public void Multiply()
		{
			Complex a, b; 
			a = new Complex(1.19209289550780998537e-7,1.19209289550780998537e-7);
			b = new Complex(1.19209289550780998537e-7,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,2.8421709430403887528e-14), 1e-016);
			a = new Complex(0.0,1.19209289550780998537e-7);
			b = new Complex(0.0,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(1.4210854715201943764e-14,0.0), 1e-016);
			a = new Complex(0.0,-1.19209289550780998537e-7);
			b = new Complex(0.0,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(5.96046447753904992685e-8,0.0), 1e-016);
			a = new Complex(0.0,5.0e-1);
			b = new Complex(0.0,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(2.5e-1,0.0), 1e-016);
			a = new Complex(0.0,-5.0e-1);
			b = new Complex(0.0,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(5.0e-1,0.0), 1e-016);
			a = new Complex(0.0,1.0);
			b = new Complex(0.0,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.0,0.0), 1e-016);
			a = new Complex(0.0,-1.0);
			b = new Complex(0.0,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(2.0,0.0), 1e-016);
			a = new Complex(0.0,2.0);
			b = new Complex(0.0,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.0,0.0), 1e-016);
			a = new Complex(0.0,-2.0);
			b = new Complex(0.0,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.6777216e7,0.0), 1e-016);
			a = new Complex(0.0,8.388608e6);
			b = new Complex(0.0,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,0.0), 1e-016);
			a = new Complex(0.0,-8.388608e6);
			b = new Complex(1.19209289550780998537e-7,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,-9.99999999999997890576e-1), 1e-016);
			a = new Complex(1.19209289550780998537e-7,0.0);
			b = new Complex(-1.19209289550780998537e-7,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-1.4210854715201943764e-14,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,0.0);
			b = new Complex(1.19209289550780998537e-7,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-1.4210854715201943764e-14,-1.4210854715201943764e-14), 1e-016);
			a = new Complex(1.19209289550780998537e-7,1.19209289550780998537e-7);
			b = new Complex(1.19209289550780998537e-7,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(2.8421709430403887528e-14,0.0), 1e-016);
			a = new Complex(1.19209289550780998537e-7,-1.19209289550780998537e-7);
			b = new Complex(-1.19209289550780998537e-7,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,2.8421709430403887528e-14), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,1.19209289550780998537e-7);
			b = new Complex(-1.19209289550780998537e-7,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(2.8421709430403887528e-14,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,-1.19209289550780998537e-7);
			b = new Complex(1.19209289550780998537e-7,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(5.96046305645357840666e-8,-5.96046589862452144705e-8), 1e-016);
			a = new Complex(1.19209289550780998537e-7,5.0e-1);
			b = new Complex(1.19209289550780998537e-7,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(2.50000000000014210855e-1,0.0), 1e-016);
			a = new Complex(1.19209289550780998537e-7,-5.0e-1);
			b = new Complex(-1.19209289550780998537e-7,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(2.49999999999985789145e-1,1.19209289550780998537e-7), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,5.0e-1);
			b = new Complex(-1.19209289550780998537e-7,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(2.50000000000014210855e-1,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,-5.0e-1);
			b = new Complex(1.19209289550780998537e-7,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.99999999999985789145e-1,-1.78813934326171497806e-7), 1e-016);
			a = new Complex(1.19209289550780998537e-7,1.0);
			b = new Complex(1.19209289550780998537e-7,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.00000000000001421085,0.0), 1e-016);
			a = new Complex(1.19209289550780998537e-7,-1.0);
			b = new Complex(-1.19209289550780998537e-7,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(9.99999999999985789145e-1,2.38418579101561997074e-7), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,1.0);
			b = new Complex(-1.19209289550780998537e-7,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.00000000000001421085,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,-1.0);
			b = new Complex(1.19209289550780998537e-7,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.99999999999998578915,-3.57627868652342995611e-7), 1e-016);
			a = new Complex(1.19209289550780998537e-7,2.0);
			b = new Complex(1.19209289550780998537e-7,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.00000000000001421085,0.0), 1e-016);
			a = new Complex(1.19209289550780998537e-7,-2.0);
			b = new Complex(-1.19209289550780998537e-7,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(3.99999999999998578915,4.76837158203123994148e-7), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,2.0);
			b = new Complex(-1.19209289550780998537e-7,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.00000000000001421085,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,-2.0);
			b = new Complex(1.19209289550780998537e-7,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.6777216e7,-1.00000023841857699214), 1e-016);
			a = new Complex(1.19209289550780998537e-7,8.388608e6);
			b = new Complex(1.19209289550780998537e-7,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,0.0), 1e-016);
			a = new Complex(1.19209289550780998537e-7,-8.388608e6);
			b = new Complex(-1.19209289550780998537e-7,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,1.99999999999999578115), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,8.388608e6);
			b = new Complex(-1.19209289550780998537e-7,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,0.0), 1e-016);
			a = new Complex(-1.19209289550780998537e-7,-8.388608e6);
			b = new Complex(5.0e-1,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-5.96046447753904992685e-8,-4.194304e6), 1e-016);
			a = new Complex(5.0e-1,0.0);
			b = new Complex(-5.0e-1,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-2.5e-1,0.0), 1e-016);
			a = new Complex(-5.0e-1,0.0);
			b = new Complex(5.0e-1,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-2.5e-1,-5.96046447753904992685e-8), 1e-016);
			a = new Complex(5.0e-1,1.19209289550780998537e-7);
			b = new Complex(5.0e-1,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(2.50000000000014210855e-1,0.0), 1e-016);
			a = new Complex(5.0e-1,-1.19209289550780998537e-7);
			b = new Complex(-5.0e-1,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-2.49999999999985789145e-1,1.19209289550780998537e-7), 1e-016);
			a = new Complex(-5.0e-1,1.19209289550780998537e-7);
			b = new Complex(-5.0e-1,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(2.50000000000014210855e-1,0.0), 1e-016);
			a = new Complex(-5.0e-1,-1.19209289550780998537e-7);
			b = new Complex(5.0e-1,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-2.4999994039535522461e-1,-2.5000005960464477539e-1), 1e-016);
			a = new Complex(5.0e-1,5.0e-1);
			b = new Complex(5.0e-1,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(5.0e-1,0.0), 1e-016);
			a = new Complex(5.0e-1,-5.0e-1);
			b = new Complex(-5.0e-1,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,5.0e-1), 1e-016);
			a = new Complex(-5.0e-1,5.0e-1);
			b = new Complex(-5.0e-1,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(5.0e-1,0.0), 1e-016);
			a = new Complex(-5.0e-1,-5.0e-1);
			b = new Complex(5.0e-1,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(2.5e-1,-7.5e-1), 1e-016);
			a = new Complex(5.0e-1,1.0);
			b = new Complex(5.0e-1,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.25,0.0), 1e-016);
			a = new Complex(5.0e-1,-1.0);
			b = new Complex(-5.0e-1,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(7.5e-1,1.0), 1e-016);
			a = new Complex(-5.0e-1,1.0);
			b = new Complex(-5.0e-1,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.25,0.0), 1e-016);
			a = new Complex(-5.0e-1,-1.0);
			b = new Complex(5.0e-1,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.75,-1.5), 1e-016);
			a = new Complex(5.0e-1,2.0);
			b = new Complex(5.0e-1,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.25,0.0), 1e-016);
			a = new Complex(5.0e-1,-2.0);
			b = new Complex(-5.0e-1,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(3.75,2.0), 1e-016);
			a = new Complex(-5.0e-1,2.0);
			b = new Complex(-5.0e-1,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(4.25,0.0), 1e-016);
			a = new Complex(-5.0e-1,-2.0);
			b = new Complex(5.0e-1,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.677721575e7,-4.194305e6), 1e-016);
			a = new Complex(5.0e-1,8.388608e6);
			b = new Complex(5.0e-1,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766425e13,0.0), 1e-016);
			a = new Complex(5.0e-1,-8.388608e6);
			b = new Complex(-5.0e-1,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766375e13,8.388608e6), 1e-016);
			a = new Complex(-5.0e-1,8.388608e6);
			b = new Complex(-5.0e-1,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766425e13,0.0), 1e-016);
			a = new Complex(-5.0e-1,-8.388608e6);
			b = new Complex(1.0,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-5.0e-1,-8.388608e6), 1e-016);
			a = new Complex(1.0,0.0);
			b = new Complex(-1.0,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-1.0,0.0), 1e-016);
			a = new Complex(-1.0,0.0);
			b = new Complex(1.0,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-1.0,-1.19209289550780998537e-7), 1e-016);
			a = new Complex(1.0,1.19209289550780998537e-7);
			b = new Complex(1.0,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(1.00000000000001421085,0.0), 1e-016);
			a = new Complex(1.0,-1.19209289550780998537e-7);
			b = new Complex(-1.0,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-9.99999999999985789145e-1,2.38418579101561997074e-7), 1e-016);
			a = new Complex(-1.0,1.19209289550780998537e-7);
			b = new Complex(-1.0,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(1.00000000000001421085,0.0), 1e-016);
			a = new Complex(-1.0,-1.19209289550780998537e-7);
			b = new Complex(1.0,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-9.9999994039535522461e-1,-5.00000119209289550781e-1), 1e-016);
			a = new Complex(1.0,5.0e-1);
			b = new Complex(1.0,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(1.25,0.0), 1e-016);
			a = new Complex(1.0,-5.0e-1);
			b = new Complex(-1.0,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-7.5e-1,1.0), 1e-016);
			a = new Complex(-1.0,5.0e-1);
			b = new Complex(-1.0,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(1.25,0.0), 1e-016);
			a = new Complex(-1.0,-5.0e-1);
			b = new Complex(1.0,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(-5.0e-1,-1.5), 1e-016);
			a = new Complex(1.0,1.0);
			b = new Complex(1.0,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(2.0,0.0), 1e-016);
			a = new Complex(1.0,-1.0);
			b = new Complex(-1.0,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,2.0), 1e-016);
			a = new Complex(-1.0,1.0);
			b = new Complex(-1.0,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(2.0,0.0), 1e-016);
			a = new Complex(-1.0,-1.0);
			b = new Complex(1.0,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(1.0,-3.0), 1e-016);
			a = new Complex(1.0,2.0);
			b = new Complex(1.0,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(5.0,0.0), 1e-016);
			a = new Complex(1.0,-2.0);
			b = new Complex(-1.0,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(3.0,4.0), 1e-016);
			a = new Complex(-1.0,2.0);
			b = new Complex(-1.0,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(5.0,0.0), 1e-016);
			a = new Complex(-1.0,-2.0);
			b = new Complex(1.0,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.6777215e7,-8.38861e6), 1e-016);
			a = new Complex(1.0,8.388608e6);
			b = new Complex(1.0,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177665e13,0.0), 1e-016);
			a = new Complex(1.0,-8.388608e6);
			b = new Complex(-1.0,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177663e13,1.6777216e7), 1e-016);
			a = new Complex(-1.0,8.388608e6);
			b = new Complex(-1.0,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177665e13,0.0), 1e-016);
			a = new Complex(-1.0,-8.388608e6);
			b = new Complex(2.0,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-2.0,-1.6777216e7), 1e-016);
			a = new Complex(2.0,0.0);
			b = new Complex(-2.0,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-4.0,0.0), 1e-016);
			a = new Complex(-2.0,0.0);
			b = new Complex(2.0,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-4.0,-2.38418579101561997074e-7), 1e-016);
			a = new Complex(2.0,1.19209289550780998537e-7);
			b = new Complex(2.0,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(4.00000000000001421085,0.0), 1e-016);
			a = new Complex(2.0,-1.19209289550780998537e-7);
			b = new Complex(-2.0,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-3.99999999999998578915,4.76837158203123994148e-7), 1e-016);
			a = new Complex(-2.0,1.19209289550780998537e-7);
			b = new Complex(-2.0,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(4.00000000000001421085,0.0), 1e-016);
			a = new Complex(-2.0,-1.19209289550780998537e-7);
			b = new Complex(2.0,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-3.99999994039535522461,-1.00000023841857910156), 1e-016);
			a = new Complex(2.0,5.0e-1);
			b = new Complex(2.0,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(4.25,0.0), 1e-016);
			a = new Complex(2.0,-5.0e-1);
			b = new Complex(-2.0,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-3.75,2.0), 1e-016);
			a = new Complex(-2.0,5.0e-1);
			b = new Complex(-2.0,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(4.25,0.0), 1e-016);
			a = new Complex(-2.0,-5.0e-1);
			b = new Complex(2.0,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(-3.5,-3.0), 1e-016);
			a = new Complex(2.0,1.0);
			b = new Complex(2.0,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(5.0,0.0), 1e-016);
			a = new Complex(2.0,-1.0);
			b = new Complex(-2.0,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(-3.0,4.0), 1e-016);
			a = new Complex(-2.0,1.0);
			b = new Complex(-2.0,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(5.0,0.0), 1e-016);
			a = new Complex(-2.0,-1.0);
			b = new Complex(2.0,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(-2.0,-6.0), 1e-016);
			a = new Complex(2.0,2.0);
			b = new Complex(2.0,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(8.0,0.0), 1e-016);
			a = new Complex(2.0,-2.0);
			b = new Complex(-2.0,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,8.0), 1e-016);
			a = new Complex(-2.0,2.0);
			b = new Complex(-2.0,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(8.0,0.0), 1e-016);
			a = new Complex(-2.0,-2.0);
			b = new Complex(2.0,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.6777212e7,-1.677722e7), 1e-016);
			a = new Complex(2.0,8.388608e6);
			b = new Complex(2.0,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177668e13,0.0), 1e-016);
			a = new Complex(2.0,-8.388608e6);
			b = new Complex(-2.0,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766e13,3.3554432e7), 1e-016);
			a = new Complex(-2.0,8.388608e6);
			b = new Complex(-2.0,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177668e13,0.0), 1e-016);
			a = new Complex(-2.0,-8.388608e6);
			b = new Complex(8.388608e6,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-1.6777216e7,-7.0368744177664e13), 1e-016);
			a = new Complex(8.388608e6,0.0);
			b = new Complex(-8.388608e6,0.0);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368744177664e13,0.0), 1e-016);
			a = new Complex(-8.388608e6,0.0);
			b = new Complex(8.388608e6,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368744177664e13,-9.99999999999997890576e-1), 1e-016);
			a = new Complex(8.388608e6,1.19209289550780998537e-7);
			b = new Complex(8.388608e6,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,0.0), 1e-016);
			a = new Complex(8.388608e6,-1.19209289550780998537e-7);
			b = new Complex(-8.388608e6,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368744177664e13,1.99999999999999578115), 1e-016);
			a = new Complex(-8.388608e6,1.19209289550780998537e-7);
			b = new Complex(-8.388608e6,-1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177664e13,0.0), 1e-016);
			a = new Complex(-8.388608e6,-1.19209289550780998537e-7);
			b = new Complex(8.388608e6,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-7.03687441776639999999e13,-4.194305e6), 1e-016);
			a = new Complex(8.388608e6,5.0e-1);
			b = new Complex(8.388608e6,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766425e13,0.0), 1e-016);
			a = new Complex(8.388608e6,-5.0e-1);
			b = new Complex(-8.388608e6,5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(-7.036874417766375e13,8.388608e6), 1e-016);
			a = new Complex(-8.388608e6,5.0e-1);
			b = new Complex(-8.388608e6,-5.0e-1);
			TestHelper.TestRelativeError(a * b, new Complex(7.036874417766425e13,0.0), 1e-016);
			a = new Complex(-8.388608e6,-5.0e-1);
			b = new Complex(8.388608e6,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(-7.03687441776635e13,-1.2582912e7), 1e-016);
			a = new Complex(8.388608e6,1.0);
			b = new Complex(8.388608e6,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177665e13,0.0), 1e-016);
			a = new Complex(8.388608e6,-1.0);
			b = new Complex(-8.388608e6,1.0);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368744177663e13,1.6777216e7), 1e-016);
			a = new Complex(-8.388608e6,1.0);
			b = new Complex(-8.388608e6,-1.0);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177665e13,0.0), 1e-016);
			a = new Complex(-8.388608e6,-1.0);
			b = new Complex(8.388608e6,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368744177662e13,-2.5165824e7), 1e-016);
			a = new Complex(8.388608e6,2.0);
			b = new Complex(8.388608e6,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177668e13,0.0), 1e-016);
			a = new Complex(8.388608e6,-2.0);
			b = new Complex(-8.388608e6,2.0);
			TestHelper.TestRelativeError(a * b, new Complex(-7.036874417766e13,3.3554432e7), 1e-016);
			a = new Complex(-8.388608e6,2.0);
			b = new Complex(-8.388608e6,-2.0);
			TestHelper.TestRelativeError(a * b, new Complex(7.0368744177668e13,0.0), 1e-016);
			a = new Complex(-8.388608e6,-2.0);
			b = new Complex(8.388608e6,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(-7.0368727400448e13,-7.036876095488e13), 1e-016);
			a = new Complex(8.388608e6,8.388608e6);
			b = new Complex(8.388608e6,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.40737488355328e14,0.0), 1e-016);
			a = new Complex(8.388608e6,-8.388608e6);
			b = new Complex(-8.388608e6,8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(0.0,1.40737488355328e14), 1e-016);
			a = new Complex(-8.388608e6,8.388608e6);
			b = new Complex(-8.388608e6,-8.388608e6);
			TestHelper.TestRelativeError(a * b, new Complex(1.40737488355328e14,0.0), 1e-016);
			a = new Complex(-8.388608e6,-8.388608e6);
			b = new Complex(0.0,1.19209289550780998537e-7);
			TestHelper.TestRelativeError(a * b, new Complex(9.99999999999997890576e-1,-9.99999999999997890576e-1), 1e-016);
		}
	}
}
